/*
 * Menu Effects: A collection of CSS3 menu effects (degrades gracefully in IE8).
 *
 * Don't hesitate to create new effects and remove the ones you don't need.
 *
 * latest version and complete README available on Github:
 * https://github.com/louisremi/menu-effects
 *
 * Copyright 2012 @louis_remi
 * Licensed under the MIT license.
 *
 * Are you using this in a paid work?
 * Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON
 *
 */

.menu, .menu ul {
  list-style: none;
  padding: 0;
}

.menu ul {
  margin: 0;
}

.menu > li {
  position: relative;
  display: inline-block;
  outline: 0;
}

.submenu {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 0;
  overflow: hidden;
  /* IE8 needs this */
  overflow: hidden\0/ !important;
  max-height: 0;
  /* A .submenu should be only revealed when hovering the .menu */
  pointer-events: none;
}

.menu > li:hover .submenu, .menu > li:focus .submenu {
  pointer-events: auto;
  z-index: 10;
  max-height: 2000px;
  -webkit-transition: none;
     -moz-transition: none;
}

/* Default
 ================================================================= */
.submenu li {
  opacity: 0;

  -webkit-transition: opacity .4s, -webkit-transform .6s, max-height .6s;
     -moz-transition: opacity .4s,    -moz-transform .6s, max-height .6s;
      -ms-transition: opacity .4s,     -ms-transform .6s, max-height .6s;
       -o-transition: opacity .4s,      -o-transform .6s, max-height .6s;
          transition: opacity .4s,         transform .6s, max-height .6s;
}

.menu > li:hover .submenu li, .menu > li:focus .submenu li {
  opacity: 1;

  -webkit-transform: none;
     -moz-transform: none;
      -ms-transform: none;
       -o-transform: none;
          transform: none;
}

/* Bounce
 ================================================================= */
.bounce {
  overflow: visible;
}

.bounce li {
  -webkit-transform: translateX(-40%);
     -moz-transform: translateX(-40%);
      -ms-transform: translateX(-40%);
       -o-transform: translateX(-40%);
          transform: translateX(-40%);

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}

/* Radial
 ================================================================= */
.radial li {
  -webkit-transform: translateY(-120px) rotate(70deg);
     -moz-transform: translateY(-120px) rotate(70deg);
      -ms-transform: translateY(-120px) rotate(70deg);
       -o-transform: translateY(-120px) rotate(70deg);
          transform: translateY(-120px) rotate(70deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;
}

/* Winding
 ================================================================= */
.winding {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.winding li {
  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;
}

/* Shield
 ================================================================= */
.shield {
  overflow: visible;

  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.shield li {
  -webkit-transform: rotateX(90deg);
     -moz-transform: rotateX(90deg);
      -ms-transform: rotateX(90deg);
       -o-transform: rotateX(90deg);
          transform: rotateX(90deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}

/* Pop
 ================================================================= */
.pop {
  overflow: visible;
}

.pop li {
  -webkit-transform: scale(.2);
     -moz-transform: scale(.2);
      -ms-transform: translateX(-80%);
       -o-transform: translateX(-80%);
          transform: translateX(-80%);

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
}


/* Helix
 ================================================================= */
.helix {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.helix li {
  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);
}

/* Wave
 ================================================================= */
.wave li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: skewY(-90deg);
     -moz-transform: skewY(-90deg);
      -ms-transform: skewY(-90deg);
       -o-transform: skewY(-90deg);
          transform: skewY(-90deg);
}

/* Fan
 ================================================================= */
.fan li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: rotate(90deg);
     -moz-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
       -o-transform: rotate(90deg);
          transform: rotate(90deg);
}

/* Papercut
 ================================================================= */
.papercut {
  -webkit-perspective: 600px;
     -moz-perspective: 600px;
      -ms-perspective: 600px;
       -o-perspective: 600px;
          perspective: 600px;

  -webkit-perspective-origin: 0% 0%;
     -moz-perspective-origin: 0% 0%;
      -ms-perspective-origin: 0% 0%;
       -o-perspective-origin: 0% 0%;
          perspective-origin: 0% 0%;
}

.papercut li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: skewY(30deg);
     -moz-transform: skewY(30deg);
      -ms-transform: skewY(30deg);
       -o-transform: skewY(30deg);
          transform: skewY(30deg);
}

/* Fly
 ================================================================= */
.fly {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.fly li {
  -webkit-transform-origin: 50% 50% -50px;
     -moz-transform-origin: 50% 50% -50px;
      -ms-transform-origin: 50% 50% -50px;
       -o-transform-origin: 50% 50% -50px;
          transform-origin: 50% 50% -50px;

  -webkit-transform: rotateX( -180deg );
     -moz-transform: rotateX( -180deg );
      -ms-transform: rotateX( -180deg );
       -o-transform: rotateX( -180deg );
          transform: rotateX( -180deg );
}

/* Blind
 ================================================================= */
.blind li {
  max-height: 0;
}

.menu > li:hover .blind li, .menu > li:focus .blind li {
  /* This should be changed to the normal height of list-items */
  max-height: 30px;
}

/* Venitian
 ================================================================= */
.venitian li {
  -webkit-transform-origin: 50% 0;
     -moz-transform-origin: 50% 0;
      -ms-transform-origin: 50% 0;
       -o-transform-origin: 50% 0;
          transform-origin: 50% 0;

  -webkit-transform: scale(1,0);
     -moz-transform: scale(1,0);
      -ms-transform: scale(1,0);
       -o-transform: scale(1,0);
          transform: scale(1,0);
}

/* Jaws
 ================================================================= */
.jaws li {
  -webkit-transform-origin: 50% -100px;
     -moz-transform-origin: 50% -100px;
      -ms-transform-origin: 50% -100px;
       -o-transform-origin: 50% -100px;
          transform-origin: 50% -100px;
}

.jaws li:nth-child(odd) {
  -webkit-transform: rotate(90deg);
     -moz-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
       -o-transform: rotate(90deg);
          transform: rotate(90deg);
}

.jaws li:nth-child(even) {
  -webkit-transform: rotate(-90deg);
     -moz-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
       -o-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

/* Fence
 ================================================================= */
.fence {
  -webkit-perspective: 600px;
     -moz-perspective: 600px;
      -ms-perspective: 600px;
       -o-perspective: 600px;
          perspective: 600px;
}

.fence li:nth-child(odd) {
  -webkit-transform-origin: 0 50%;
     -moz-transform-origin: 0 50%;
      -ms-transform-origin: 0 50%;
       -o-transform-origin: 0 50%;
          transform-origin: 0 50%;

  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);
}

.fence li:nth-child(even) {
  -webkit-transform-origin: 100% 50%;
     -moz-transform-origin: 100% 50%;
      -ms-transform-origin: 100% 50%;
       -o-transform-origin: 100% 50%;
          transform-origin: 100% 50%;

  -webkit-transform: rotateY(-90deg);
     -moz-transform: rotateY(-90deg);
      -ms-transform: rotateY(-90deg);
       -o-transform: rotateY(-90deg);
          transform: rotateY(-90deg);
}

/* Zipper
 ================================================================= */
.zipper li:nth-child(odd) {
  -webkit-transform: translateX(-100%);
     -moz-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
       -o-transform: translateX(-100%);
          transform: translateX(-100%);
}

.zipper li:nth-child(even) {
  -webkit-transform: translateX(100%);
     -moz-transform: translateX(100%);
      -ms-transform: translateX(100%);
       -o-transform: translateX(100%);
          transform: translateX(100%);
}
